type pcond = bool * int * int
type pfeature = int * float * (pcond list)
type pfeaturelist = pfeature list
type ptree = PLeaf of float
           | PVertex of int * int * ptree * ptree
type pfactor = PFeatureSet of pfeaturelist
             | PFeatureTable of pfeaturelist
             | PFeatureTree of ptree
             | PFeature of pfeature
type pmn = {factors: pfactor list;
            weights: (int * float) list;}
